`:top
Die `!Common Language Runtime`!, kurz `!CLR`!, ist der Name der virtuellen `F33f`_`[Laufzeitumgebung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Laufzeitumgebung]`_`f von klassischen `F33f`_`[.Net-Framework`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=.Net-Framework]`_`f-`F33f`_`[Anwendungen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Anwendungssoftware]`_`f. Die CLR stellt damit eine konkrete Implementierung der Laufzeitumgebung der `F33f`_`[Common Language Infrastructure`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Common_Language_Infrastructure]`_`f für das .NET Framework dar. Die CLR führt nicht direkt den Programmcode einer `F33f`_`[höheren Programmiersprache`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Höhere_Programmiersprache]`_`f aus, sondern interpretiert `F33f`_`[Common Intermediate Language`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Common_Intermediate_Language]`_`f-Code (ECMA-Bezeichnung, früher Microsoft Intermediate Language). Dafür wird der Programmcode einer .NET Sprache (`F33f`_`[C#`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C-Sharp]`_`f, `F33f`_`[J#`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=J-Sharp]`_`f, `F33f`_`[F#`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=F-Sharp]`_`f, `F33f`_`[C++/CLI`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C++/CLI]`_`f …) mittels eines sprachabhängigen Compilers in CIL-Code übersetzt. Dies bietet unter anderem den Vorteil, dass Teile eines Programms in unterschiedlichen Programmiersprachen geschrieben werden können.
>>Contents
• `F0af`_`[Erklärung und Funktionsweise`#erkl-rung-und-funktionsweise]`_`f
• `F0af`_`[Adaptionen`#adaptionen]`_`f
• `F0af`_`[Literatur`#literatur]`_`f
• `F0af`_`[Einzelnachweise`#einzelnachweise]`_`f
-─
>>Erklärung und Funktionsweise
Wird ein Programm aus einer .NET-Programmiersprache übersetzt, werden zunächst `F33f`_`[Assemblies`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=.Net-Framework]`_`f (Dateiendungen `F33f`_`[.exe`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=EXE]`_`f oder `F33f`_`[.dll`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Dynamic_Link_Library]`_`f) erzeugt, welche den übersetzten CIL-Code sowie diverse Header und `F33f`_`[Metadaten`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Metadaten]`_`f enthalten. Dieser Schritt muss von einem sprachspezifischen `F33f`_`[Compiler`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Compiler]`_`f vorgenommen werden. Bei CIL-Code handelt es sich um einen `F33f`_`[Zwischencode`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Zwischencode]`_`f, der von der CLR verwaltet wird und der deshalb auch als `*managed code`* bezeichnet wird, als verwalteter Code – in Abgrenzung zu `*unmanaged code`* bzw. `F33f`_`[nativem Code`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Maschinencode]`_`f. Zur Laufzeit des Programms werden die geladenen Assemblies von einem `F33f`_`[Just-in-time-Compiler`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Just-in-time-Compiler]`_`f, welcher Bestandteil der CLR ist, in nativen Code (Maschinencode) übersetzt, welcher von der `F33f`_`[CPU`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=CPU]`_`f ausgeführt werden kann.
Die von der CLR angebotenen Dienste können von den Programmiersprachen genutzt werden, in denen die jeweilige Anwendung programmiert wurde. Zu diesen Diensten gehören unter anderem `F33f`_`[Garbage Collection`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Garbage_Collection]`_`f, `F33f`_`[Ausnahmebehandlung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Ausnahmebehandlung]`_`f und die Sicherstellung von `F33f`_`[Code Access Security`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Code_Access_Security]`_`f. Die CLR ist angewiesen auf das Common Type System, d. h. eine Sammlung von Typen und Funktionen, die in vielen Programmiersprachen unterstützt werden.
Die CLR ist die `F33f`_`[Implementierung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Implementierung]`_`f der Komponente Virtual Execution System, die zu dem Standard `F33f`_`[Common Language Infrastructure`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Common_Language_Infrastructure]`_`f gehört, für das `F33f`_`[.NET Framework`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=.NET_Framework]`_`f.`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f]
>>Adaptionen
Es gibt weitere Laufzeitumgebungen, die die CLR adaptieren und diesen Namen mitverwenden:
• `F33f`_`[Mono`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Mono_(Software)]`_`f enthält eine Laufzeitumgebung nach dem Vorbild von der des .NET Frameworks, sie wird mitunter auch als CLR bezeichnet.
• CoreCLR ist der Name der Laufzeitumgebung, die im modularen, `F33f`_`[quelloffenen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Quelloffen]`_`f Framework `F33f`_`[.NET Core`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=.NET_Core]`_`f verwendet wird.`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f]
• `F33f`_`[.NET Native`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=.NET_Native]`_`f enthält eine Laufzeitumgebung, für die auch CLR als Name verwendet wird. Sie kommt bei der Ausführung von `F33f`_`[Universal Windows Platform`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Universal_Windows_Platform]`_`f Apps für `F33f`_`[Windows 10`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Windows_10]`_`f zum Einsatz. Diese Anwendungen werden nicht in CIL-Code `F33f`_`[ausgeliefert`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Softwareverteilung]`_`f, sondern direkt in nativem Code. Die Just-in-time-Kompilierung entfällt.`:cite-ref-3[`F5bf`_`[3`#cite-note-3]`_`f]
>>Literatur
• Don Box, Chris Sells: `*Essential .NET, Volume 1: The Common Language Runtime`*, `F33f`_`[Addison-Wesley`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Addison-Wesley]`_`f 2002, ISBN 978-0-201-73411-9
• Kevin Burton: `*.NET Common Language Runtime Unleashed`*, SAMS 2002, ISBN 978-0-672-32124-5
• Jeffrey Richter: `*CLR via C#`*, 4. Auflage, Microsoft Press 2012, ISBN 978-0-7356-6745-7
• Dana L. Wyatt, Robert J. Oberg: `*Introduction to Visual Basic Using .NET`*, `F33f`_`[Prentice Hall`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Prentice_Hall]`_`f 2002, ISBN 978-0-13-041804-3
>>Einzelnachweise
`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f Mohammad Rahman: C# Deconstructed: Discover how C# works on the .NET Framework. Apress, 2014, ISBN 978-1-4302-6670-9, S. 16.
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f Neil McAllister: `*Microsoft takes lid off .Net Common Language Runtime sauce.`* In: `*`F33f`_`[The Register`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=The_Register]`_`f.`* 3. Februar 2015, abgerufen am 9. Dezember 2015 (englisch).
`:cite-note-3`!3.`! `F0af`_`[↑`#cite-ref-3]`_`f Holger Schwichtenberg: Zwei auf einen Streich. In: `F33f`_`[Windows Developer`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Windows_Developer]`_`f. Nr. 10, 2015, S. 8 ff. (online archiviert).
`c`F0af`_`[↑ Back to top`#top]`_`f`a